package sgc;

/**
 * @author Diego Pereira do Nascimento e Leonardo Santos Martins
 * 
 * Descrição da classe::
 * Está classe tem como propósito ser utilizada para fazer todas as verificções e validações necessárias no programa
 * 
 */
public class Utilitario {
    
    public static boolean validarCep(String cep){
        if (cep.length() == 8)
            cep = cep.substring(0, 5) + "-" + cep.substring(5);
        
        return cep.matches("[0-9]{5}-[0-9]{3}");
    }
    
    public static boolean validarCpf(String cpf){
        
        if(cpf.length() > 11)
            for(int i = 0; i < cpf.length(); i++)
                if(cpf.charAt(i) == '.' || cpf.charAt(i) == '-')
                    cpf = cpf.substring(0, i) + cpf.substring((i+1));
        
        try{
            int test = Integer.parseInt(cpf);
        }catch(NumberFormatException erro){
            System.out.println("O CPF só pode conter números!");
            return false;
        }
        
        if (cpf.length() == 11 ) {
            int digito1 = 0, digito2 = 0, resto = 0, digitoCPF = 0, d1 = 0, d2 = 0;
            String  nDigResult;
               
            for (int i = 1; i < cpf.length() -1; i++) {
                digitoCPF = Integer.valueOf(cpf.substring(i -1, i)).intValue();
                d1 += (11 - i) * digitoCPF;
                d2 += (12 - i) * digitoCPF;
            }
               
            resto = (d1 % 11);
               
            if (resto < 2)
                digito1 = 0;
            else
                digito1 = 11 - resto;
             
            d2 += 2 * digito1;
            resto = (d2 % 11);
             
            if (resto < 2) 
                digito2 = 0; 
            else
                digito2 = 11 - resto;
             
            String nDigVerific = cpf.substring (cpf.length()-2, cpf.length());
            nDigResult = String.valueOf(digito1) + String.valueOf(digito2);
             
            return nDigVerific.equals(nDigResult);
        }
        return false;
    }
        
    public static boolean validarEstado(String uf){
        String estados[] = {"AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SP","SE","TO"};
         
        for(int i = 0; i < estados.length; i++)
            if(uf.equalsIgnoreCase(estados[i]))
                return true;
         
        return false;
    }
    
    public static void pagarInscricao(Inscricao inscricoes[]){
	Leitura ler = new Leitura();
	int cod, aux = 0;
        
        System.out.println("");
	System.out.println("Digite o código do candidato: ");
	cod = ler.lerInt();
	
	for(int i = 0; i < inscricoes.length; i++)
            if(inscricoes[i].getCandidato().getCod() == cod){
		System.out.println("Inscricao paga com sucesso!");
		inscricoes[i].setPaga(true);
		aux = 1;
                break;
            }
        
	if(aux == 0)
            System.out.println("Candidato não encontrado!");
    }
    
}
